import { Punch } from '../../entities';
import { EventType } from '../entities/analytics.entity';
import {
  ApiProperty,
  getSchemaPath,
  PartialType,
  PickType,
} from '@nestjs/swagger';

export class AnalyticsResObj {
  /**
   * 事件类型
   */
  eventType: EventType;

  /**
   * 事件数量
   */
  count: number;

  /**
   * 事件模块名称
   */
  module: string;
}

export class PunchTodayItemDto extends PickType(Punch, [
  'punchDate',
  'mealType',
  'punchId',
  'createdAt',
]) {}

export class PunchTodayGroupDto {
  /**
   * 时间
   * @example 16:00
   */
  date: string;

  /**
   * 当前时间段的打卡数量（2 小时统计）
   * @example 2
   */
  count: number;

  /**
   * 打卡记录列表
   */
  items: PunchTodayItemDto[];
}

export class AdminAnalyticsSummaryResDto {
  /**
   * 用户总数
   */
  userCount: number;

  /**
   * 模块点击量
   */
  analytics: AnalyticsResObj[];

  /**
   * 今日打卡数
   */
  punchTodayList: PunchTodayGroupDto[];
}
